Formalizing Refinements and Constructive Algebra in Type Theory
نویسندگان
چکیده
The extensive use of computers in mathematics and engineering has led to an increased demand for reliability in the implementation of algorithms in computer algebra systems. One way to increase the reliability is to formally verify that the implementations satisfy the mathematical theorems stating their specification. By implementing and specifying algorithms from computer algebra inside a proof assistant both the reliability of the implementation and the computational capabilities of the proof assistant can be increased. This first part of the thesis presents a framework, developed in the interactive theorem prover Coq, for conveniently implementing and reasoning about program and data refinements. In this framework programs defined on rich dependent types suitable for proofs are linked to optimized implementations on simple types suitable for computation. The correctness of the optimized algorithms is established on the prooforiented types and then automatically transported to the computationoriented types. This method has been applied to develop a library containing multiple algorithms from computational algebra, including: Karatsuba’s polynomial multiplication, Strassen’s matrix multiplication and the Sasaki-Murao algorithm for computing the characteristic polynomial of matrices over commutative rings. The second part of the thesis presents the formalization of notions from constructive algebra. Focus is on the theory of coherent and strongly discrete rings, which provides a general setting for developing linear algebra over rings instead of fields. Examples of such rings include Bézout domains, Prüfer domains and elementary divisor rings. Finitely presented modules over these rings are implemented using an abstraction layer on top of matrices. This enables us to constructively prove that the category of these modules form a suitable setting for developing homological algebra. We further show that any finitely presented module over an elementary divisor ring can be decomposed to a direct sum of a free module and cyclic modules in a unique way. This decomposition gives a decision procedure for testing if two finitely presented modules are isomorphic.
منابع مشابه
Formalizing Abstract Algebra in Constructive Set Theory
We present a machine-checked formalization of elementary abstract algebra in constructive set theory. Our formalization uses an approach where we start by specifying the group axioms as a collection of inference rules, defining a logic for groups. Then we can tell whether a given set with a binary operation is a group or not, and derive all properties of groups constructively from these inferen...
متن کاملFormalizing the Halting Problem in a Constructive Type Theory
We present a formalization of the halting problem in Agda, a language based on Martin-Löf’s intuitionistic type theory. The key features are: – We give a constructive proof of the halting problem. The “constructive halting problem” is a natural reformulation of the classic variant. – A new abstract model of computation is introduced, in type theory. – The undecidability of the halting problem i...
متن کاملCertiied Computer Algebra
Computer algebra is about constructions and problems in algebra which can be ee-ciently computed or decided by mechanical procedures. A challenging point of importing computer algebra to type theory is that it require the formalisation of a considerable amount of non-trivial mathematics. The correctness of simple computer algebra algorithms can often depend on quite deep mathematical results, a...
متن کاملConstructive Algebra in Functional Programming and Type Theory
This thesis considers abstract algebra from a constructive point of view. The central concept of study is coherent rings − algebraic structures in which it is possible to solve homogeneous systems of linear equations. Three different algebraic theories are considered; Bézout domains, Prüfer domains and polynomial rings. The first two of these are non-Noetherian analogues of classical notions. T...
متن کاملFormalizing Simple Refinement Types in Coq An Experience Report
We consider refinement types in which base types can be refined by constraints expressible in some decidable logic. Such refinement types have been applied in many settings, such as certification of security policies [1, 10], and reasoning precisely about heap updates [9, 10]. A lot of work has been done on extensions of the basic idea of refinements, including inference in liquid types [8], or...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2014